1. Field of the Invention
The present invention relates to computer networks, and deals more particularly with methods, systems, computer program products, and methods of doing business wherein network-accessible services are autonomically provisioned in a decentralized network having a federated grid infrastructure.
2. Description of the Related Art
Service level agreements, or “SLAs”, are commonly used by network service providers to define their contractual service obligations to their customers. These service obligations typically include response time commitments, whereby the customer is guaranteed that requests for various types of network-accessible services will be completed within some average elapsed time and/or within some maximum elapsed time. Service obligations also typically include availability commitments for resources (including network-accessible services). If the service obligations are not met, the customer might be entitled to a reduction in the fees owed to the service provider. Service providers are therefore highly motivated to meet the commitments in their SLAs.
Due to the inability to accurately predict demand and processing load, service providers often provide excess capacity when statically provisioning resources for their customers. Resources provided for some customers may occasionally experience a “web storm”, that is, a dramatic temporary surge in demand. (For example, a particular network-accessible service may become flooded with incoming requests, or a particular server might experience a heavy request volume for the applications it hosts, and so forth.) This increased demand may be an increase of several orders of magnitude over the typical demand. Even though service providers may provide excess capacity when provisioning resources, it is not cost-effective for the service providers to provide an instance-based topology that is capable of servicing the level of traffic that may be experienced during a web storm.
To a lesser degree, profitability is also negatively impacted when the service provider provision excess capacity that can meet the customer's more “normal” spikes in demand.
An emerging trend in information technology in general, and in decentralized networks of the type provided by network service providers, is use of collaboration. This trend is evidenced by the level of investment in so-called “web services” and in the adoption of a number of open industry standards supporting web services. In general, the term “web service” refers to an interface that describes a collection of network-accessible operations. Web services technology is a mechanism for distributed application integration, and is also commonly referred to as the “service-oriented architecture” for distributed computing. Web services fulfill a specific task or a set of tasks. They may work with one or more other web services in an interoperable manner to carry out their part of a complex workflow or a business transaction. For example, completing a complex purchase order transaction may require automated interaction between an order placement service (i.e., order placement software) at the ordering business and an order fulfillment service at one or more of its business partners. In turn, this order fulfillment service may interact with a credit card approval service, a package delivery service, and so forth.
The open industry standards leveraged by Web services to facilitate “just-in-time” distributed application integration include HTTP (“Hypertext Transfer Protocol”), SOAP (“Simple Object Access Protocol”) and/or XML (“Extensible Markup Language”) Protocol, WSDL (“Web Services Description Language”), and UDDI (“Universal Description, Discovery, and Integration”). HTTP is commonly used to exchange messages over TCP/IP (“Transmission Control Protocol/Internet Protocol”) networks such as the Internet SOAP is an XML-based protocol used to invoke methods in a distributed environment. XML Protocol is an evolving specification of the World Wide Web Consortium (“W3C”) for an application-layer transfer protocol that will enable application-to-application messaging. XML Protocol may converge with SOAP. WSDL is an XML format for describing distributed network services. UDDI is an XML-based registry technique with which businesses may list their services and with which service requesters may find businesses providing particular services. Just-in-time application integration will be possible by issuing UDDI requests to locate distributed services through a UDDI registry, and dynamically binding the requester to a located service using service information which is conveyed in a platform-neutral WSDL tbrmat using SOAP/XML Protocol and HTTP messages. (Hereinafter, references to SOAP should be construed as referring equivalently to semantically similar aspects of XML Protocol.) Using these components, web services will provide requesters with transparent access to program components which may reside in one or more remote locations, even though those components might run on different operating systems and be written in different programming languages than those of the requester. (For more information on SOAP, refer to “Simple Object Access Protocol (SOAP) 1.1, W3C Note 08 May 2000”, which may be found using the W3C Web page. More information on XML Protocol may also be found using this Web page. More information on WSDL may be found in “Web Services Description Language (WSDL) 1.1, W3C Note 15 March 2001”, also axailable from the W3C Web page. For more information on UDDI, refer to the UDDI specification found at the UDDI Web page. HTTP is described in Request For Comments (“RFC”) 2616 from the Internet Engineering Task Force, titled “Hypertext Transfer Protocol—HTTP/1.1” (June 1999).)
With increased use of collaborative networking, efficient techniques for resource sharing will become critical. Resource sharing is complicated in conventional distributed or decentralized networks by the heterogeneity that exists when using technologies such as web services. In recent years, the academic and scientific communities cooperated to develop the concept of “grid technology” for sharing their resources. As defined by IBM in “What is Grid computing?”, grid is “a collection of distributed computing resources available over a local or wide area network that appear to an end user or application as one large virtual computing system. The vision [of grid computing] is to create virtual dynamic organizations through secure, coordinated resource-sharing among individuals, institutions and resources. Grid computing is an approach to distributed computing that spans not only locations but also organizations, machine architectures and software boundaries to provide unlimited power, collaboration and information access to everyone connected to a Grid.”
Grid technology allows enterprises to share resources as they form “virtual organizations”—that is, the enterprises share their resources and services (which may be in geographically-widespread locations and which may have heterogeneous computing platforms) to form virtual computing services. (See “Grid Services for Distributed System Integration”, I. Foster et al., Computer, 35(6), 2002, for more information about grid technology.
Today, an architecture referred to as “Open Grid Services” is being developed by academic and scientific communities, along with commercial entities such as International Business Machines Corporation (“IBM®”), as an evolution of grid technology. This Open Grid Services architecture (“OGSA”) enables a grid to provide enterprises with an extensible set of services that can be aggregated by the virtual organizations (see Id.). According to OGSA, all computational resources, storage resources, networks, programs, databases, and so forth are modelled as services, providing a service-oriented view. OGSA leverages web services technology (and the open industry standards on which that technology is built) as well as grid technology. (Refer to OGSA information available from the Globus Alliance Web Page and to “The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration”, I. Foster et al, for more information on the OGSA. A document titled “Grid Service Specification (Draft 3, Jul. 17, 2002)”, hereinafter “the Grid Service Specification” or “GSS”, provides a definition of standard interfaces and behaviors of a grid service that is built on a web services base.
The OGSA work effort includes an evolution of a programmer's toolkit referred to as the “Globus Toolkit”, which is designed to make creation of grid-based applications easier. The Globus Toolkit defines a “grid runtime” as a set of services. This set of services includes: (1) a Grid Resource Allocation and Management (“GRAM”) protocol and “gatekeeper” service, designed to provide secure, reliable service creation and management; (2) a Monitoring and Discovery Service (“MDS-2”) for information discovery; and (3) a Grid Security Infrastructure for single sign-on, delegation, and credential mapping.
Another emerging technology is autonomic computing, which reduces the maintenance and administrative complexity inherent in information technology (“IT”) systems and networks by employing algorithms that allow the systems and networks to monitor and manage themselves. An autonomic system is defined as one which displays one or more of the following characteristics: (1) self-defining; (2) self-configuring; (3) self-optimizing; (4) self-healing; (5) self-protecting; (6) anticipatory; and (7) contextually aware in a heterogeneous environment. (These concepts are known in the art; accordingly, a detailed description thereof is not deemed necessary to an understanding of the present invention.)
What is needed are techniques for leveraging resources more efficiently within a network domain that facilitates collaborative interconnected networks (of the type that are supported by the concepts of OGSA and grid technology) while avoiding the expensive and inefficient over-commitment of resources.